#ifndef FRIENDDETAILPAGE_H
#define FRIENDDETAILPAGE_H

#include <QWidget>
#include <QLabel>
#include <QPushButton>

namespace Ui {
class FriendDetailPage;
}

/**
 * @brief 好友详情页面类，展示好友详情和提供相关操作
 */
class FriendDetailPage : public QWidget
{
    Q_OBJECT

public:
    /**
     * @brief 构造函数，初始化好友详情页面
     * @param parent 父窗口指针
     */
    explicit FriendDetailPage(QWidget *parent = nullptr);

    /**
     * @brief 析构函数，释放资源
     */
    ~FriendDetailPage();

    /**
     * @brief 设置好友详情信息
     * @param friendId 好友ID
     * @param friendName 好友名称
     * @param friendAge 好友年龄
     */
    void setFriendInfo(const QString &friendId, const QString &friendName, int friendAge);

signals:
    /**
     * @brief 返回好友列表页面信号
     */
    void backToFriendList();

    /**
     * @brief 发起会话信号
     * @param friendId 好友ID
     * @param friendName 好友名称
     */
    void startConversation(const QString &friendId, const QString &friendName);

    /**
     * @brief 删除好友信号
     * @param friendId 好友ID
     */
    void deleteFriend(const QString &friendId);

private slots:
    /**
     * @brief 会话按钮点击事件处理
     */
    void onChatClicked();

    /**
     * @brief 删除按钮点击事件处理
     */
    void onDeleteClicked();

    /**
     * @brief 返回按钮点击事件处理
     */
    void onBackClicked();

private:
    Ui::FriendDetailPage *ui;         ///< UI对象指针
    QLabel *m_friendIdLabel;          ///< 好友ID标签
    QLabel *m_friendNameLabel;        ///< 好友名称标签
    QLabel *m_friendAgeLabel;         ///< 好友年龄标签
    QPushButton *m_chatBtn;           ///< 会话按钮
    QPushButton *m_deleteBtn;         ///< 删除按钮
    QPushButton *m_backBtn;           ///< 返回按钮
    QString m_friendId;               ///< 好友ID

    /**
     * @brief 初始化UI组件
     */
    void initUI();
};

#endif // FRIENDDETAILPAGE_H

